One or more aspects relate, in general, to multiprocessing computing environments, and in particular, to controlling program execution within such computing environments.
In multiprocessing computing environments, such as symmetric multiprocessing (SMP) environments, multiple processors of the SMP environment use classic synchronization mechanisms to synchronize execution within the environment. These synchronization mechanisms include serialization techniques implemented in shared memory locations and may include semaphores or other shared memory flags or counters. In order to ensure progress, such mechanisms may also include additional code to limit the time spent waiting for a synchronization signal. The limits may include a simple instruction counter, a time-based mechanism, or other technique.
Other multiprocessing environments, such as simultaneous multithreading (SMT) environments, may use the above techniques or other techniques to synchronize execution.